
from flask import Flask,request
from flask import render_template
# 调用自定义模块中的函数
from reserch import reserch4letters
from bmi import countbmi

# Flask:中央登记中心
app = Flask(__name__)

# 【Flask】(https://dormousehole.readthedocs.io/en/latest/quickstart.html#id10)
# 【HTMl】(https://www.w3school.com.cn/html/index.asp)
# 【jinja2】(https://palletsprojects.com/p/jinja/)

# 1. 路由：相对路径，决定了 页面资源 的路径，如果没有登记，将返回404 not found
# 1.1 url: 相对于：http://127.0.0.1：5000的相对路径
# 1.2 methods:【GET】【POST】
# 2. 视图函数：
# 2.1 函数过程决定了你操作的方法（实现的功能），例如 if elif else for while ...
# 2.2 return：返回数据内容，text文本，HTML文件（模板渲染），JSON文件等

# 【GET】
@app.route('/',methods=['GET'])
def home():
    return render_template('home.html')

@app.route('/name',methods=['GET'])
def names():
    return render_template('name.html')

@app.route('/word',methods=['GET'])
def word():
    return render_template('word.html')

@app.route('/bmi',methods=['GET'])
def bmi():
    return render_template('bmi.html')



# 【POST】实现用户输入，点击提交，将数据提交到 /result
@app.route('/result_name',methods=['POST','GET'])
def result_name():
    # 接收数据：request.form[HTML-参数名称]
    # 1. 名字的全称（完整的应用）：用户输入数据--->后端接收数据--->后端处理数据--->返回到HTML页面
    # 2. 元音字母查询（第二个功能）
    # 3. 自选：购物车 或者 课程表
    py_firstname = request.form['firstname']
    py_lastname = request.form['lastname']
    py_fullname = py_firstname.title()+' '+py_lastname.title()
    return render_template('result_name.html',
                           fullname = py_fullname)
    # 在 中央登记中心，写这么多 python过程的代码 是不是有点不好玩？
    # 使用模块来写函数过程，在视图函数中调用模块实现函数方法
@app.route('/result_word',methods=['POST','GET'])
def result_word():
    py_word = request.form['word']
    py_vowels = request.form['vowels']
    py_found = reserch4letters(py_vowels,py_word)
    return render_template('result_word.html',
                           found = py_found)

@app.route('/result_bmi',methods=['POST','GET'])
def result_bmi():
    py_height = float(request.form['height'])
    py_weight = float(request.form['weight'])
    py_bmi,py_suggest = countbmi(py_weight,py_height)
    return render_template('result_bmi.html',
                           bmi=py_bmi,suggest=py_suggest)




if __name__ == '__main__':
    app.run(host='127.0.0.1',port=5000,debug=True)
